// #等待元素出现并点击
// #参数 页面，选择器
exports.selectAndClick = async function (page, selector) {
  await page.waitForSelector(selector, {
    timeout:5000
  })
  await page.click(selector)
}

// #等待跳转出现并点击跳转
// #参数 页面，选择器
exports.clickAndRedirect = async function (page, selector) {
  await page.waitForSelector(selector, {
    timeout: 5000
  })
  page.waitForNavigation()
  await page.click(selector)
}

// #等到元素出现并拿到元素innerHTML
// #参数 页面，选择器
exports.getInnerHtml = async function (page, selector) {
  await page.waitForSelector(selector, {
    timeout: 3000
  })
  return await page.$eval(selector, el => el.innerHTML)
}

// #监听页面错误 
// #参数 页面，当前url，回调函数
exports.listenOnPageError = function (page, currentPage, callback) {
  page.on('pageerror', msg => {
    console.log('page:'+currentPage+' occure page error. errorMessage:'+msg)
    callback()
  })
}

// #监听网络错误 
// #参数 页面，当前url，回调函数
exports.listenOnNetError = function (page, currentPage, callback){
  page.on('response', res => {
    if (res.status() != '200' && res.status() != '304'&& res.status() != '206') {
      console.log('page:'+currentPage+' occure network error. status:'+res.status())
      callback()
    }
  })
}
